﻿//using System;
//using System.Collections.Generic;
//using System.Text;
//using DCRF.Common.Core;
//using DCRF.Common.Primitive;
//using DCRF.Common.Helper;
//using System.Reflection;
//using DCRF.Common.DBC;
//using DCRF.Common.Interface;
//using System.Windows.Forms;
//using DBML.Interface.Criteria;
//using DBML.Interface;

//namespace DCRF.BaseBlocks
//{
//    public class DataProvider: BlockBase
//    {
//        public override BlockInfo BlockInfo
//        {
//            get
//            {
//                BlockInfo result = new BlockInfo();
//                result.BlockID = new CID("DataProvider", new BlockVersion(1, 0, 0, 0), "DCRF");
//                return result;
//            }
//        }

//        public override void InitConnectors()
//        {
//            //TODO: fix Connectors.CreateConnector("IDataManager", typeof(IDynamicManager));
//        }

//        [BlockService]
//        public IRowCollection GetData(string entityName, params object[] keyValues)
//        {
//            StringBuilder sb = new StringBuilder();

//            for(int i=0;i<keyValues.Length;i+=2)
//            {
//                object key = keyValues[i];
//                object value = keyValues[i + 1];

//                if (value == null)
//                {
//                    sb.Append(string.Format("({0} IS NULL) AND ", key));
//                }
//                else
//                {
//                    sb.Append(string.Format("({0}={1}) AND ", key, value));
//                }
//            }

//            if (keyValues.Length > 1)
//            {
//                sb.Append("(1=1)");
//            }

//            IDynamicManager man = processConnector<IDynamicManager>("IDataManager");

//            return man.SearchRows(entityName, sb.ToString());
//        }

//        [BlockService]
//        IDataRow GetRow(string entityName, string pkField, string value)
//        {
//            IRowCollection rows = GetData(entityName, pkField, value);

//            if (rows.Count == 0)
//            {
//                return rows.GetItem(0) as IDataRow;
//            }

//            return null;
//        }

//    }
//}
